package cn.wolfcode.wolf2w.service;

import cn.wolfcode.wolf2w.domain.Destination;
import cn.wolfcode.wolf2w.query.DestinationQuery;
import org.springframework.data.domain.Page;

import java.util.List;

public interface IDestinationService {
    /**
     * 保存操作
     * @param destination
     */
    void save(Destination destination);

    /**
     * 修改操作
     * @param destination
     */
    void update(Destination destination);

    /**
     * 删除操作
     * @param id
     */
    void delete(String id);

    /**
     * 查询单个操作
     * @param id
     * @return
     */
    Destination get(String id);

    /**
     * 查询所有操作
     * @return
     */
    List<Destination> listAll();

    /**
     * 根据区域的id查询目的地
     * @param rid
     * @return
     */
    List<Destination> queryDestByRegionId(String rid);

    /**
     * 分页查询操作
     * @param qo
     * @return
     */
    Page<Destination> query(DestinationQuery qo);

    /**
     * 根据parentId查询（吐司）
     * @param parentId
     * @return
     */
    List<Destination> findByParentId(String parentId);

    /**
     * 修改目的地的info信息
     * @param destination
     */
    void updateInfo(Destination destination);

    /**
     * 根据区域id查找对应的目的地
     * @param regionId
     * @return
     */
    List<Destination> queryDestByRegionIdForApi(String regionId);

    /**
     *根据不同的层面查询目的地
     * @param deep 1：国家层面；2：省份层面；3：城市层面
     * @return
     */
    List<Destination> queryDestByDeep(int deep);

    /**
     * 根据目的名查询目的地对象
     * @param keyword
     * @return
     */
    Destination findByName(String keyword);
}
